"""
本代码主要从自动化办公的场景出发
通过一些示例
将日常管理中针对Excel的操作进行自动化
"""

"""
一个文件夹下多个工作薄的合并，合并至同一个工作簿中的同一个sheet页

思路：
1，把文件夹下面所有的文件都遍历出来
2、循环读取每个文件
（1）第一次读取的文件放入一个空的表中，起名叫合并表
（2）从第二次开始每次都与这个合并表进行合并
3、写入Excel
4、所有表表头行数要一至，通过header=1进行设置
"""
import pandas as pd
import os

path = '../文件/MultiFiles/'
df = pd.DataFrame()
for fileName in os.listdir(path):
    readTableName = pd.read_excel(path + fileName)  # 如果有多行表头，增加header = 1
    df = pd.concat([df, readTableName])
print(df)
pathNew = 'C:/Users/pc/Desktop/新建文件夹/合并表.xlsx'
df.to_excel(pathNew)

"""
同一工作薄中多个Sheet合并成一个sheet
"""
import pandas as pd

path = '../文件/合并2.xlsx'
data = pd.read_excel(path, None)  # 读取所有的sheet页内容
df = pd.DataFrame()
sheetNameList = list(data.keys())  # 返回['Sheet1','Sheet2','Sheet3']
for sheetName in sheetNameList:
    newData = data[sheetName]
    df = pd.concat([df, newData])
print(df)

"""
将一个工作表拆分成多个工作表
即 一个工作簿内的单个sheet页，拆分成多个sheet页
"""
import pandas as pd

path = '../文件/拆分.xlsx'
data = pd.read_excel(path)
dividCol = list(data['部门'].drop_duplicates())  # 返回['办公室', '销售部', '保洁部']
newData = pd.ExcelWriter('C:/Users/pc/Desktop/新建文件夹/多个Sheet.xlsx')
for i in dividCol:
    dataTemp = data[data['部门'] == i]
    dataTemp.to_excel(newData, sheet_name=i)
newData.close()

"""
将一个工作簿拆分成多个工作簿
"""
import pandas as pd

path = '../文件/拆分.xlsx'
data = pd.read_excel(path)
dividCol = list(data['部门'].drop_duplicates())
for i in dividCol:
    dataTemp = data[data['部门'] == i]
    dataTemp.to_excel('C:/Users/pc/Desktop/新建文件夹/' + i + '.xlsx')
